<?php
/**
 * Created by PhpStorm.
 * User: 33kuai
 * Date: 2020/2/4
 * Time: 21:05
 */

namespace frontend\modules\demo\controllers;


use yii\web\Controller;
use Yii;
class ResponseController extends Controller
{

    public function actionIndex(){


        $response = Yii::$app->response;
        $response->format = \yii\web\Response::FORMAT_JSON;
        $response->data = ['message' => 'hello world'];
        $response->statusCode=222;

        return [
            'message' => 'hello world',
            'code' => 100,
        ];


    }

//yii\web\BadRequestHttpException：状态码 400。
//yii\web\ConflictHttpException：状态码 409。
//yii\web\ForbiddenHttpException：状态码 403。
//yii\web\GoneHttpException：状态码 410。
//yii\web\MethodNotAllowedHttpException：状态码 405。
//yii\web\NotAcceptableHttpException：状态码 406。
//yii\web\NotFoundHttpException：状态码 404。
//yii\web\ServerErrorHttpException：状态码 500。
//yii\web\TooManyRequestsHttpException：状态码 429。
//yii\web\UnauthorizedHttpException：状态码 401。
//yii\web\UnsupportedMediaTypeHttpException：状态码 415。

    public function actionNotFound(){

        throw new \yii\web\TooManyRequestsHttpException;

    }
    public function actionRefresh(){
       // return Yii::$app->getResponse()->refresh();die;

    }

    public function actionHeader(){
        $headers = Yii::$app->response->headers;

// 增加一个 Pragma 头，已存在的Pragma 头不会被覆盖。
        $headers->add('Pragma', 'no-cache');
        $headers->add('test','test333');
// 设置一个Pragma 头. 任何已存在的Pragma 头都会被丢弃
        $headers->set('Pragma', 'no-cache');

// 删除Pragma 头并返回删除的Pragma 头的值到数组
        $values = $headers->remove('Pragma');
        Yii::$app->response->content = 'hello world!';


    }
    public function actionJson(){

        \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return [
            'message' => 'hello world',
            'code' => 100,
        ];
    }

    public function actionXml(){

        \Yii::$app->response->format = \yii\web\Response::FORMAT_XML;
        return [
            'message' => 'hello world',
            'code' => 100,
        ];
    }
    public function actionRedirect(){

        return $this->redirect('http://example.com/new', 301);
    }

    public function actionDownload(){
        $file = Yii::getAlias('@frontend/web/img/yii2-starter-kit.gif');
        return Yii::$app->response->xSendFile($file);

      //  return \Yii::$app->response->sendFile($file);

    }


}